<?php
/**
 * Created by hq
 * User: mac
 * Date: 2019/7/26
 * Time: 15:21
 */
namespace app\common;

use OSS\OssClient;
use OSS\Core\OssException;


$a = require_once root_path().'extend/oss/autoload.php';

class OssTool{
    //视频

    public function upload_one($file_name ='file',$wenjianming='ab')
    {


        ini_set("memory_limit", "10024M"); // 不够继续加大
        set_time_limit(0);
//        try {

            // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
            $accessKeyId = "LTAI5tJvJJTkNUWNETDZb4DT";
            $accessKeySecret = "Rxdb7LwgtaZEsxs2Pqwkha29yqUgq8";
            // Endpoint以杭州为例，其它Region请按实际情况填写。
            $endpoint = "http://oss-cn-beijing.aliyuncs.com";
            // 设置存储空间名称。
            $bucket= "wujinxiaofang";
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

            //拼object
            $file=request()->file($file_name);


            $name = $file->getOriginalName();//'3.jpg'

            //$name = $file->getMime();//文件流

            $type = strtolower(substr(strrchr($name, '.'), 1));

            //$pic_name = time() . rand(100000, 999999) . "." . $type;
        $pic_name = time() . rand(100000, 999999) . "." . $type;
       // $pic_name = $wenjianming. "." . $type;
            $object = "image/". date("Ymd") . "/" . $pic_name;

            $res =  $ossClient->uploadFile($bucket,$object,$file);

            $url = $res['info']['url'];

            return [
                'code' => 200 ,
                'url' => $url,
                'name'=>explode('.',$name)[0],
                'type' => ''
            ];
//        } catch (OssException $e) {
//            print $e->getMessage();
//            return ['code'=>400,'m'=>$e->getMessage()];
//
//        }
    }

    public function download($object,$file_name){

// 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
        $accessKeyId = "LTAI4G2uj3BHRSryiy241PRJ";
        $accessKeySecret = "ap58wwMCa5aUZVfo0wy7ooIh13qbmQ";
        // Endpoint以杭州为例，其它Region请按实际情况填写。
        $endpoint = "http://oss-cn-beijing.aliyuncs.com";
        $bucket= "sanjiejiaoyuapp";
// <yourObjectName>表示您下载OSS文件时需要指定的文件路径，例如abc/123.jpg。
//        $object = "<yourObjectName>";
// <yourLocalFile>本地指定的文件路径加文件名包括后缀组成，例如/users/local/myfile.txt。
        $localfile = $file_name;
        $options = array(
            OssClient::OSS_FILE_DOWNLOAD => $localfile
        );

// 使用try catch捕获异常，如果捕获到异常，则说明下载失败；如果没有捕获到异常，则说明下载成功。
        try{
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);

            $ossClient->getObject($bucket, $object, $options);
        } catch(OssException $e) {
            printf(__FUNCTION__ . ": FAILED\n");
            printf($e->getMessage() . "\n");
            return;
        }
        print(__FUNCTION__ . ": OK, please check localfile: 'upload-test-object-name.txt'" . "\n");
    }

    public function upload_img($file_name)
    {

        ini_set("memory_limit", "1024M"); // 不够继续加大
        set_time_limit(0);
        try {
            // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
            $accessKeyId = "LTAI4G2uj3BHRSryiy241PRJ";
            $accessKeySecret = "ap58wwMCa5aUZVfo0wy7ooIh13qbmQ";
            // Endpoint以杭州为例，其它Region请按实际情况填写。
            $endpoint = "http://oss-cn-beijing.aliyuncs.com";
            // 设置存储空间名称。
            $bucket= "sanjiejiaoyuapp";
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
            //拼object
            $file=request()->file($file_name);


            $filePath = $file->getInfo('tmp_name');
            $name = $file->getInfo('name');
            $type = strtolower(substr(strrchr($name, '.'), 1));
            $pic_name = time() . rand(100000, 999999) . "." . $type;
            $object = "image/". date("Ymd") . "/" . $pic_name;
            $res =  $ossClient->uploadFile($bucket,$object,$filePath);

            $url = $res['info']['url'];

            return [
                'code' => 0 ,
                'img' => $url,
                'name'=>$file->getInfo('name'),
                'type' => $file->getInfo('type')
            ];
        } catch (OssException $e) {
            print $e->getMessage();
            return ['code'=>400];

        }
    }
    public function moreUpload($file_name)
    {
        ini_set("memory_limit", "1024M"); // 不够继续加大
        set_time_limit(0);
        $files = request()->file($file_name);



        $flag = true;
        foreach($files as $file){
            try {


                // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
                $accessKeyId = "LTAI4G2uj3BHRSryiy241PRJ";
                $accessKeySecret = "ap58wwMCa5aUZVfo0wy7ooIh13qbmQ";
                // Endpoint以杭州为例，其它Region请按实际情况填写。
                $endpoint = "http://oss-cn-beijing.aliyuncs.com";
                // 设置存储空间名称。
                $bucket= "sanjiejiaoyuapp";
                $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
                //拼object
                $filePath = $file->getInfo('tmp_name');
                $name = $file->getInfo('name');
                $type = strtolower(substr(strrchr($name, '.'), 1));
                $pic_name = time() . rand(100000, 999999) . "." . $type;
                $object = "image/". date("Ymd") . "/" . $pic_name;
                $res =  $ossClient->uploadFile($bucket,$object,$filePath);
                $save_files[] = $res['info']['url'];
            } catch (\Exception $e) {
                $flag = false;
            }
        }
        $data = [
            'flag'=>$flag,
            'files'=>$save_files,
        ];
        return $data;
    }

}